package com.glodon.paas.document.storage.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.glodon.paas.document.storage.model.Node;
import com.glodon.paas.document.storage.model.NodeAssoc;
import com.glodon.paas.document.storage.model.Store;

public interface StorageMapper {
    Store getStoreByName(String name);

    List<NodeAssoc> getNodeAssoc(String parent);

    NodeAssoc getNodeAssocByName(@Param("parent") String parent, @Param("name") String name);

    void insertNode(Node node);

    Node getNode(String id);

    void insertChildAssoc(NodeAssoc nodeAssoc);

    void updateNode(Node node);

    void deleteNodeAssoc(NodeAssoc nodeAssoc);

    void deleteNode(Node child);

    List<NodeAssoc> getNodeAssocByChild(String id);

    long getNextVersion(String id);

    List<Store> getStores();

    void insertStore(Store store);

    void updateStoreRoot(Store store);

}
